package com.saybiu.service;

import com.saybiu.domain.Comment;
import com.saybiu.domain.Picture;
import com.saybiu.domain.ReplyPost;

import java.util.List;

/**
 * @Author: 李金祥
 * @Date: 2021/4/17 20:31 （日期和时间）
 */
public interface ReplyService {
    /**
     * 帖子回复量加1 同时给帖子回复表添加记录
     * @param replyPost 帖子回复信息
     * @param pictures 回复帖子是所带的图片
     * 做事务处理
     * 影响bbs_posts、bbs_pictures和bbs_reply_post表
     */
    void replyPost(ReplyPost replyPost, List<Picture> pictures);


    /**
     * 帖子回复量自减 -1，同时将帖子回复表中的记录和相关图片删掉
     * @param postId 帖子id
     * 做事务处理
     * 影响bbs_posts、bbs_pictures和bbs_reply_post表
     */
    void cancelReplyPost(Integer userId, Integer postId);

    /**
     * 给回复评论表添加记录
     * @param comment 回复评论的内容
     * 操作bbs_reply_comments表
     */
    void addReplyComment(Comment comment);

    /**
     * 撤销回复评论
     * @param replyId 回复帖子表id
     * 操作bbs_reply_comments表
     */
    void cancelReplyComment(Integer replyId);

    /**
     * 给帖子评论点赞
     * @param userId 用户id
     * @param likeCommentId 对帖子评论的id
     */
    void likeReply(Integer userId, Integer likeCommentId);

    /**
     * 取消对评论的点赞
     * @param userId 用户id
     * @param commentId 评论id
     */
    void cancelLikeReply(Integer userId, Integer commentId);

    /**
     * 对评论的评论点赞
     * @param userId
     * @param replyCommentId
     */
    void likeComment(Integer userId, Integer replyCommentId);

    /**
     * 取消对评论的评论点赞
     * @param userId
     * @param replyCommentId
     */
    void cancelLikeComment(Integer userId, Integer replyCommentId);

    //------------------对帖子回复的查询操作----------------------------

    /**
     * 根据帖子id查询帖子回复信息
     * @param postId 帖子id
     * @return
     * 操作bbs_reply_post
     */
    List<ReplyPost> queryReplyPostByPostId(Integer postId);

    /**
     * 根据回复帖子表的id 查询回复评论表
     * @param replyId
     * @return
     */
    List<Comment> queryReplyComment(Integer replyId);
}
